Page({
  /**
   * 页面的初始数据
   */
  data: {
    isCollect:false,
    
    goodObj:{
        goods_id:12,
        cat:2,
        goods_name:"艾戈勒（agelocer）布达佩斯系列瑞士手表男 三针多功能商务男表 全自动机械表防水带日历 银壳黑皮带 动能指示 4101A1【爆款】",
        goods_price:100,
        goods_int:"//img13.360buyimg.com/imgzone/jfs/t1/115639/17/9573/1272314/5edeea64Eefa6e93e/148fddae41de7179.jpg!q70.dpg.dpg",
        pics:[
          {
            id:"2",
            img_mid:"https://m.360buyimg.com/mobilecms/s1265x1265_jfs/t1/43388/33/13247/348883/5d661af2E01cdd962/fcf95f38e01ee364.jpg!q70.dpg.dpg",
            img:"https://m.360buyimg.com/mobilecms/s1265x1265_jfs/t1/43388/33/13247/348883/5d661af2E01cdd962/fcf95f38e01ee364.jpg!q70.dpg.dpg"
          },
          {
            id:"1",
            img_mid:"https://m.360buyimg.com/mobilecms/s1265x1265_jfs/t1/43388/33/13247/348883/5d661af2E01cdd962/fcf95f38e01ee364.jpg!q70.dpg.dpg",
            img:"http://m.360buyimg.com/mobilecms/s750x750_jfs/t1/129213/28/4646/383326/5ee1f6f7E0ce0389c/2f947357820a04ae.png!q80.dpg"
          },
          {
            id:"3",
            img_mid:"https://m.360buyimg.com/mobilecms/s1265x1265_jfs/t1/43388/33/13247/348883/5d661af2E01cdd962/fcf95f38e01ee364.jpg!q70.dpg.dpg",
            img:"http://m.360buyimg.com/mobilecms/s1265x1265_jfs/t1/117578/3/9926/175766/5ee20607Ef6b4d9c2/371b362c8b2102ac.jpg!q70.dpg"
          }
        ] 
    }
  },
  GoodsInfo:{},
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    console.log(options)
  },
// 点击查看大图
// 绑定事件 api wx.previewImage 
  handItemImage(e){
    // 构造预览图片地址
    const urls = this.data.goodObj.pics.map(v => v.img)
    // 获取传递参数url
    const current = e.currentTarget.dataset.url
    wx.previewImage({
      current: current, // 当前显示图片的http链接
      urls: urls // 需要预览的图片http链接列表
    })
  },
  // 点击加入购物车
  // 1.先绑定点击事件
  // 2.先取缓存中的购物车数据  数据格式
  // 3.先判断  当前的商品是否存在于购物车
  // 4.已经存在 修改商品的数据 执行购物车++ 重新把购物车数组 填充回缓存中
  // 5.不存在于购物车的数组中 直接给购物车数组添加一个新元素 新元素带上购买数量属性num 重新把购物车数组 填充回缓存中
  // 6.弹出提示
  // 问题待解决 加入购物车数量num始终为  1 ？
  handleCartAdd(){
    console.log("handleCartAdd")
    // 1 获取缓存中的购物车 数组 第一次获取是一个空字符串 需要转换
    let cart = wx.getStorageSync(cart)||[];
    console.log(cart)
    // 2 判断 商品对象是否在于购物车数组中
    let index =cart.findIndex(v=>v.goods_id===this.data.goodObj.goods_id)
    console.log(this.data.goodObj.goods_id)
    console.log(index)
    console.log(cart[index])
    if(index === -1){
      // 3 不存在 第一次添加
      this.data.goodObj.num=1
      this.data.goodObj.checked=true
      cart.push(this.data.goodObj)
      console.log(this.data.goodObj)
      console.log(cart[index])
    }else{
      console.log(this.data.goodObj) //没有执行
      // 4 已经存在购物车数据执行 num++
      cart[index].num++
    }
    // 5把购物车重新添加回缓存中
    wx.setStorageSync("cart",cart)
    // 提示状态
    wx.showToast({
      title: '加入成功',
      icon: 'success',
      duration: 2000,
      // 防止连续点击 mask:true
      mask:true
    })
  },
  // 点击收藏按钮
  handleCollect(){
    // 获取缓存中的商品收藏数组
    let collect = wx.getStorageSync("collect")||[]
    // 判断该商品是否被收藏过
    // let index=collect.findIndex(v=>v.goods_id===this.GoodsInfo.goods_id)
    let index = 1
    console.log(index)
    // 当index!=-1表示已经收藏过
    if(index!==-1){
      // 能找到已经收藏过了 在数组中删除该商品
      collect.splice(index,1);
      this.setData({
        isCollect:false
      }) 
      // 提示状态
    wx.showToast({
      title: '取消收藏',
      icon: 'success',
      duration: 2000,
      // 防止连续点击 mask:true
      mask:true
    })
    // 测试用 重新赋值
    collect.push(this.data.goodObj);
    // index = -1
    }else{
      // 没有收藏过
      // collect.push(this.GoodsInfo); 
      
      this.setData({
        isCollect:true
      }) 
      wx.showToast({
        title: '收藏成功',
        icon: 'success',
        duration: 2000,
        // 防止连续点击 mask:true
        mask:true
      })
    }
    // 把数组存入到缓存中
    wx.setStorageSync("collect",collect)
  },
  // 获取商品详情数据 商品收藏 页面显示
  onShow:function(){
    // 赋值
    this.GoodsInfo=this.data.goodObj
    // 当前页面栈 
    let Pages =  getCurrentPages();
    console.log(Pages)
    // 获取当前页的index
    let  CurrentPages=Pages[Pages.length-1]
    console.log(CurrentPages)
    // 获取当前索引数组的options
    let options =CurrentPages.options
    console.log(options)
    // 解构这个数组的id值  
    const {goods_id} = options
    console.log(goods_id)
    // 1.获取缓存中的商品收藏的数组
    let collect =wx.getStorageSync("collect")||[]
    console.log(collect)
    // 2.判断当前上架是否被收藏 在请求商品详情页的时候需要给GoodsInfo赋值 然后才可以判断是否存在 goods_id 切记
    // let isCollect=collect.some(v=>v.goods_id===this.GoodsInfo.goods_id)
    let isCollect=true
    console.log(isCollect)
    // 重新给isCollect赋值
    this.setData({
      isCollect
    })  
  }

})